<?php

namespace app\common\controller;

use think\Controller;

/**
 * 公共控制器
 */
class Index extends Controller
{
    public function __construct()
    {
        parent::__construct();

        // 全局应用模型
        $this->BusinessModel = model('Business.Business');

        // 存储全局变量
        $this -> loginAuth = null;

        // 获取当前访问控制器的方法
        $action = $this->request->action();

        // 如果action在noNeedLogin数组中，则不需要登录（跳过登录）
        if(!in_array($action,$this->noNeedLogin)&& !in_array('*',$this->noNeedLogin)){

            // 使用islogin方法检查是否登录
            $this->islogin();
        }
    }


    
    public function islogin(){
        $user_list = cookie('LoginUser') ? cookie('LoginUser'):[];
        $id = isset($user_list['id']) ? trim($user_list['id']) : 0;
        $mobile = isset($user_list['mobile']) ? trim($user_list['mobile']) : '';

        if(!$id || empty($mobile)){
            cookie('LoginUser',null);
            $this->error('请先登录','/index/index/login');
            exit;
        }
        
        $where = [
            'id'=>$id,
            'mobile'=>$mobile, 
        ];

        $sql = $this->BusinessModel->where($where)->find();
        
        if($sql == null){
            $this->error($this->BusinessModel->getError());
            exit;
        }
        
        $sql = $sql->toArray();
        // 查询输出语句
        // $ab = $this->BusinessModel->getLastSql();
        // echo $ab;
        // exit;
        if(!$sql){
            cookie('LoginUser',null);
            $this->error('非法登录','/index/index/login');
            exit;
        }
        // 可通过session闪存数据传参
        // return $this->redirect();
        
        $this->loginAuth = $sql;
        $this->view->assign('LoginUser',$sql);
    }
}
//验证登录（注册）流程：
//      1.前端验证
//              判断用户名密码是否为空
//              正则验证通过
//              （可选）ajax异步通讯
//              
//      2.后端验证
//              * ：千万不要相信前端传输的数据，一定要进行后端验证（前后端分离）
//              判断传值是否为空
//              组件data数组
//                  （模型）application/common/mobel：专门负责传递数据与数据库操作
//                  （视图）application/index/view：（模板）专门存放页面布局与视图，与控制器一一对应
//                  （控制器）application/(公共控制器+common)/index/controller:加载视图，构建函数，接收视图数据，链接验证器
//                  （验证器）application/index/validate/(页面名称)：当前页面储存的验证条件与方法
// 
// 
